package com.huangguolin.cloud.login.service;


import com.huangguolin.cloud.login.entity.MenuLevelEntity;
import com.huangguolin.cloud.mybatis.entity.PtMenuEntity;
import com.huangguolin.cloud.mybatis.entity.PtUserEntity;
import org.springframework.http.ResponseEntity;

import java.util.List;

public interface LoginService {

    /**
     * 查询用户信息列表
     * @return
     */
    List<PtUserEntity> queryUserList();

    /**
     * 根据id删除用户
     * @return userId  用户id
     */
    void deleteUserById(String userId);

    /**
     * 重置密码
     * @param password1
     */

    void resttingPassword(String password1);

    /**
     * 根据名称查询用户
     * @return userName
     */
    PtUserEntity queryUserInfoByName(String userName);

    /**
     * 查询菜单列表
      * @return
     */
    List<MenuLevelEntity> queryMenuList();

    /**
     * 根据用户id查询权限列表
     * @param userUuid 用户id
     * @return 权限列表
     */
    List<String> queryAuthListById(String userUuid);

    /**
     * 生成验证码图片
     * @return
     */
    ResponseEntity<byte[]> getVerifyCodeImg();

    /**
     * 发送邮箱验证码
     * @param emailCode 用户邮箱账号
     * @return 验证码
     */
    void getemailcode(String emailCode);


    /**
     * 根据邮箱查找用户ID
     * @param emailCode
     */
    boolean queryUserIdByEmail(String emailCode);


    /**
     * 注册新用户
     * @param password2
     * @param emailCode
     */
    void registerUser(String password2, String emailCode,String regName,String regniceName);

    /**
     * 校验用户名
     * @param regName
     */
    boolean infoUserName(String regName);
}
